home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that this notice is preserved and that due credit is given
- * to the University of California at Berkeley. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission. This software
- * is provided ``as is'' without express or implied warranty.
- */
-
- #if defined(LIBC_SCCS) && !defined(lint)
- static char sccsid[] = "@(#)getservbyport.c 5.4 (Berkeley) 3/7/88";
- #endif /* LIBC_SCCS and not lint */
-
- #include <netdb.h>
-
- extern int _serv_stayopen;
-
- struct servent *
- getservbyport(port, proto)
- int port;
- char *proto;
- {
- register struct servent *p;
-
- setservent(_serv_stayopen);
- while (p = getservent()) {
- if (p->s_port != port)
- continue;
- if (proto == 0 || strcmp(p->s_proto, proto) == 0)
- break;
- }
- if (!_serv_stayopen)
- endservent();
- return (p);
- }
-